package com.pro.mapper;

import com.pro.pojo.JsCourse;
import com.pro.pojo.JsMicrocirclePlus;
import com.pro.pojo.JsUser;
import com.pro.pojo.OrderQuantity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * @Author 谭金诚
 * @Description TODO
 * @Date 2022/1/7 15:23
 * @Version 1.0
 */
public interface SystemIndexMapper {

    OrderQuantity getSystemIndexNums();

    //查询待审核信息数量
    Integer getToExamineNums(@Param("type") Integer type, @Param("result") String result);

    //查询退订信息数量(查询不同状态的订单数量)
    Integer getOrderQuantityStatus(@Param("orderStatus") Integer orderStatus);

    //查询上架商品总数
    Integer getCommodityNums(@Param("productSate") Integer productSate, @Param("result") String result);

    //查询商品销量、收藏、已完成订单总数



    //查询上架课程总数
    Integer getCourseNums(@Param("courseStatus") Integer course_status, @Param("courseCstatus") Integer courseCstatus);

    //查询课程浏览、收藏、点赞数量
    JsCourse getCourseStatusNums(JsCourse jsCourse);


    //查询发布微圈总数
    Integer getMicroCircleNums(@Param("show") Integer show, @Param("details") Integer details);

    //查询用户不同时期用户数量
    Integer getBeforeUserNums(@Param("startDate") String startDate ,@Param("endDate") String endDate);

    //查询本月课程新增总数
    Integer getNowMonthCourseNums(@Param("createDate") String createDate, @Param("type") Integer type, @Param("result") String result);

    //查看本月新增商品总数
    Integer getNowMonthProductNums(@Param("createDate") String createDate, @Param("type") Integer type, @Param("result") String result);

    //查看本月新增用户总数
    Integer getNowMonthUserNums(@Param("createDate") String createDate);


    //查看本月每天新增课程数
    @MapKey("dateFor")
    Map<String, String> getCourseDate(@Param("dateType") String dateType, @Param("type") Integer type, @Param("result") String result);

    //查看本月每天新增商品数
    @MapKey("dateFor")
    Map<String, String> getProductDate(@Param("dateType") String dateType, @Param("type") Integer type, @Param("result") String result);

    //查看本月每天新增用户数
    @MapKey("dateFor")
    Map<String, String> getBeforeUserDate(@Param("dateType") String dateType);

    //修改用户信息
    boolean updateUser(JsUser user);

    //查询微圈总数、点赞总数
    JsMicrocirclePlus getMicroCircleStatusNums(@Param("show") Integer show, @Param("details") Integer details);

    //查询商品销量总数
    Integer getCommoditySaleNums(@Param("orderStatus") Integer orderStatus, @Param("orderType") Integer orderType);

    //查询商品收藏总数
    Integer getCommodityCollectionNums(@Param("collectionType") Integer collectionType);

    //查询订单总数
    Integer getOrderQuantityNums();

    //查询前端用户总数
    Integer getBeforeUserAllNums();

    //查询后台用户总数
    Integer getAfterUserNums();

    //查询进思用户总数
    Integer getJinSiUserNums();

    //创作者认证待处理数量
    Integer getApplyRecordNoHandle(@Param("result") Integer result);

}
